home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 10 - 1994 / 10.08 Aug 94 / Programmers' Challenge / Stenger macros < prev   
Encoding:
Text File  |  1994-07-18  |  718 b   |  36 lines  |  [TEXT/MPS ]

  1. #define OVERFLOW(x) \
  2.     (0 != (0x80000000 & (x)))
  3.  
  4. #define DOCARRY(x) { \
  5.     x ## high++; \
  6.     x ## low &= 0x7FFFFFFF;}
  7.     
  8. #define DOBORROW(x) { \
  9.     x ## high--; \
  10.     x ## low &= 0x7FFFFFFF;}
  11.     
  12. #define GT_ZERO(x) \
  13.     ((x ## high >= 0) && (x ## low != 0)) 
  14. #define EQ_ZERO(x) \
  15.     ((x ## high == 0) && (x ## low == 0)) 
  16. #define LT_ZERO(x) \
  17.     ((x ## high <  0)) 
  18.  
  19. #define INCR(x,a) { \
  20.     if (OVERFLOW(x ## low += a)) \
  21.         DOCARRY(x);}
  22.         
  23. #define DECR(x,a) { \
  24.     if (OVERFLOW(x ## low -= a)) \
  25.         DOBORROW(x);}
  26.         
  27. #define PLUS_EQUALS(x, y) { \
  28.     x ## high += y ## high;    \
  29.     if (OVERFLOW(x ## low += y ## low))\
  30.         DOCARRY(x);}
  31.  
  32. #define MINUS_EQUALS(x, y) { \
  33.     x ## high -= y ## high;    \
  34.     if (OVERFLOW(x ## low -= y ## low))\
  35.         DOBORROW(x);}
  36.